Data Flow Architecture

Overview

The media stack operates as a fully automated pipeline:

Request → Index → Download → Import → Library

Each stage is handled by a dedicated service to ensure separation of concerns and predictable media handling.


Flow Steps

1. Request (optional)

Via Jellyseerr → sends to Radarr/Sonarr

2. Indexing

Prowlarr syncs indexers:

docker exec -it prowlarr curl http://localhost:9696

Prowlarr synchronizes indexers to Radarr and Sonarr automatically.

3. Download

Downloads are handled by:

  • qBittorrent

Radarr/Sonarr send torrents via API using category-based routing:

  • movies
  • series

Check active downloads:

docker exec -it qbittorrent qbittorrent-nox

(or via Web UI: http://localhost:8080)

4. Import validation

Radarr and Sonarr monitor completed downloads and import them into the correct library structure.

Radarr/Sonarr scanning:

docker exec -it radarr ls /data/downloads/movies

5. Final library check

After import, media is stored in the final library locations:

ls -la /mnt/BonusDisk/JellyfinMedia/Streaming/movies
ls -la /mnt/BonusDisk/JellyfinMedia/Streaming/series

These folders are consumed by the media server (e.g. Jellyfin).

Debug commands

Check container networking

docker network ls

Test internal service resolution

docker exec -it radarr ping sonarr

Summary

This architecture ensures:

  • Fully automated media acquisition
  • Clear separation between download and library layers
  • Centralized indexer management via Prowlarr
  • Deterministic routing through Radarr and Sonarr
  • Stable storage structure for long-term media hosting
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9